package com.hqd.ch03.v51.context.annotation;

public interface AnnotationConfigRegistry {

    /**
     * Register one or more component classes to be processed.
     * <p>Calls to {@code register} are idempotent; adding the same
     * component class more than once has no additional effect.
     *
     * @param componentClasses one or more component classes,
     *                         e.g. {@link Configuration @Configuration} classes
     */
    void register(Class<?>... componentClasses);

    /**
     * Perform a scan within the specified base packages.
     *
     * @param basePackages the packages to scan for component classes
     */
    void scan(String... basePackages);

}
